package com.letv.core.bean;

import java.util.ArrayList;

import com.alibaba.fastjson.annotation.JSONField;

/**
 * 视频信息
 * 
 * @author zhuqiao
 *
 */

/**
 * 添加成员变量含义说明
 * 
 * @author 吴新荣
 *
 */
public class VideoBean implements LetvBaseBean {
    private static final long serialVersionUID = 1L;

    private long vid; // 视频id
    private long pid; // 专辑id
    private int cid; // 频道id
    private String nameCn; // 视频标题
    private String subTitle; // 副标题
    private String singer; // 歌手
    private String guest; // 嘉宾或客队
    private int type; // 影片来源 1-专辑 3-视频
    private long btime; // 片头时间
    private long etime; // 片尾时间
    private long duration; // 时长
    private String mid; // 媒资id
    private String episode; // 集数

    /**
     * 在专辑顺序 专辑列表里的视频信息
     */
    private String porder;
    private int pay; // 是否需要支付 1-需要支付 0-免费
    private int download = 1; // 是否支持下载 1-支持下载 0-禁止下载

    private String pic; // 图片 120 * 90

    private String pic300; // 200 * 150

    private String pic320; // 320 * 200
    private int play = 1; // 是否可以播放 1-可以 0-不可以
    private int jump; // 是否外跳 1-外跳 0-不外跳
    /**
     * 外跳类型： WEB_JUMP、TV_JUMP
     * 
     * @WEB：仅提示“使用网页观看”，不提供网页链接按钮
     * @WEB_JUMP: 提示“使用网页观看”且提供网页链接按钮
     * @TV_JUMP：提示“使用TV投屏观看”
     * @NO_COPYRIGHT：三端均无版权
     */
    private String jumptype;
    private String jumpLink;
    /**
     * 是否webview打开，1是 0否。jump = 1 时才会有值，通过cms（cmsid 线上：2938 测试：2939）控制
     */
    private int openby;
    private String brList; // 码流支持列表

    private String videoTypeKey = ""; // 视频类型编码，180001-正片

    /*
     * 视频类型 0001 正片 0002 预告片 视频类型(参考[视频类型]字典)
     */
    private String videoType;
    private String controlAreas; // 受控区域，多个逗号分隔，结合disableType字段处理，空为全部允许
    private int disableType; // 1:全部允许;2:部分允许;3:中国大陆外全部屏蔽;4:部分屏蔽
    private long playCount; // 播放数
    private int at; // 点击展示方式: 1-进详情，2-直接播放; 默认为直接播放

    @JSONField(name = "watchingFocus")
    private ArrayList<WatchingFocusItem> WatchingFocusList;

    private String createYear; // 创建年份
    private String createMonth; // 创建月份
    private String title;
    private String pidname; // 专辑标题
    private String subname; // 副标题
    private String picHT; // 横图
    private String picST; // 竖图
    @JSONField(name = "pic320*200")
    private String pic320_200;
    private String nowEpisodes; // 更新集数
    private String director; // 导演
    private String starring; // 主演
    private String score; // 评分
    private String reid; // 该板块本次推荐的全局唯一标识

    private String bucket; // 后台测试桶编号
    private String area; // 推荐后台区域编号 - 上报需要
    private String releaseDate; // 上映时间
    private String style; // 分类 (资讯、热点)

    private String subCategory; // 子分类,多个空格分隔
    private String cornerMark;

    private int isEnd; // 剧集是否完结

    private String playTv;
    private String videoTypeName;
    private String pidsubtitle;

    private int itemType; // 显示item项的类型，用于List列表显示

    @JSONField(name = "picAll")
    private PicAllBean videoPicAll; // 图片对象

    public String getCornerMark() {
        return cornerMark;
    }

    public void setCornerMark(String cornerMark) {
        this.cornerMark = cornerMark;
    }

    public String getSubCategory() {
        return subCategory;
    }

    public void setSubCategory(String subCategory) {
        this.subCategory = subCategory;
    }

    public String getTitle() {
        return title;
    }

    public void setTitle(String title) {
        this.title = title;
    }

    public String getPidname() {
        return pidname;
    }

    public void setPidname(String pidname) {
        this.pidname = pidname;
    }

    public String getSubname() {
        return subname;
    }

    public void setSubname(String subname) {
        this.subname = subname;
    }

    public String getPicHT() {
        return picHT;
    }

    public void setPicHT(String picHT) {
        this.picHT = picHT;
    }

    public String getPicST() {
        return picST;
    }

    public void setPicST(String picST) {
        this.picST = picST;
    }

    public String getPic320_200() {
        return pic320_200;
    }

    public void setPic320_200(String pic320_200) {
        this.pic320_200 = pic320_200;
    }

    public String getNowEpisodes() {
        return nowEpisodes;
    }

    public void setNowEpisodes(String nowEpisodes) {
        this.nowEpisodes = nowEpisodes;
    }

    public String getDirector() {
        return director;
    }

    public void setDirector(String director) {
        this.director = director;
    }

    public String getStarring() {
        return starring;
    }

    public void setStarring(String starring) {
        this.starring = starring;
    }

    public String getScore() {
        return score;
    }

    public void setScore(String score) {
        this.score = score;
    }

    public String getReid() {
        return reid;
    }

    public void setReid(String reid) {
        this.reid = reid;
    }

    public String getBucket() {
        return bucket;
    }

    public void setBucket(String bucket) {
        this.bucket = bucket;
    }

    public String getArea() {
        return area;
    }

    public void setArea(String area) {
        this.area = area;
    }

    // ##################################################
    //
    // ##################################################
    public VideoBean() {
        WatchingFocusList = new ArrayList<WatchingFocusItem>();
        videoPicAll = new PicAllBean();
    }

    public String getCreateYear() {
        return createYear;
    }

    public void setCreateYear(String createYear) {
        this.createYear = createYear;
    }

    public String getCreateMonth() {
        return createMonth;
    }

    public void setCreateMonth(String createMonth) {
        this.createMonth = createMonth;
    }

    public String getPorder() {
        return porder;
    }

    public void setPorder(String porder) {
        this.porder = porder;
    }

    public String getVideoType() {
        return videoType;
    }

    public void setVideoType(String videoType) {
        this.videoType = videoType;
    }

    public String getJumpLink() {
        return jumpLink;
    }

    public void setJumpLink(String jumpLink) {
        this.jumpLink = jumpLink;
    }

    public long getPlayCount() {
        return playCount;
    }

    public void setPlayCount(long playCount) {
        this.playCount = playCount;
    }

    // 非正片， 过滤 预告片类型： 180001 正片 180002 预告片 组合：180001,180002
    public String getVideoTypeKey() {
        return videoTypeKey;
    }

    public void setVideoTypeKey(String videoTypeKey) {
        this.videoTypeKey = videoTypeKey;
    }

    public ArrayList<WatchingFocusItem> getWatchingFocusList() {
        return WatchingFocusList;
    }

    public void setWatchingFocusList(ArrayList<WatchingFocusItem> watchingFocusList) {
        WatchingFocusList = watchingFocusList;
    }

    /**
     * @return the singer
     */
    public String getSinger() {
        return singer;
    }

    /**
     * @param singer
     * the singer to set
     */
    public void setSinger(String singer) {
        this.singer = singer;
    }

    public long getId() {
        return vid;
    }

    public void setVid(long id) {
        this.vid = id;
    }

    public String getNameCn() {
        return nameCn;
    }

    public void setNameCn(String nameCn) {
        this.nameCn = nameCn;
    }

    public String getSubTitle() {
        return subTitle;
    }

    public void setSubTitle(String subTitle) {
        this.subTitle = subTitle;
    }

    public String getPic() {
        if (videoPicAll != null) {
            pic = videoPicAll.getPic120();
        }
        return pic;
    }

    public void setPic(String pic) {
        if (videoPicAll != null) {
            videoPicAll.setPic120(pic);
        }
        this.pic = pic;
    }

    public String getPic300() {
        if (videoPicAll != null) {
            pic300 = videoPicAll.getPic200();
        }
        return pic300;
    }

    public void setPic300(String pic300) {
        if (videoPicAll != null) {
            videoPicAll.setPic200(pic300);
        }
        this.pic300 = pic300;
    }

    public String getPic320() {
        if (videoPicAll != null) {
            pic320 = videoPicAll.getPic320();
        }
        return pic320;
    }

    public void setPic320(String pic320) {
        if (videoPicAll != null) {
            videoPicAll.setPic320(pic320);
        }
        this.pic320 = pic320;
    }

    public long getBtime() {
        return btime;
    }

    public void setBtime(long btime) {
        this.btime = btime;
    }

    public long getEtime() {
        return etime;
    }

    public void setEtime(long etime) {
        this.etime = etime;
    }

    public int getCid() {
        return cid;
    }

    public void setCid(int cid) {
        this.cid = cid;
    }

    public long getPid() {
        return pid;
    }

    public void setPid(long pid) {
        this.pid = pid;
    }

    public int getType() {
        return type;
    }

    public void setType(int type) {
        this.type = type;
    }

    public int getAt() {
        return at;
    }

    public void setAt(int at) {
        this.at = at;
    }

    public String getReleaseDate() {
        return releaseDate;
    }

    public void setReleaseDate(String releaseDate) {
        this.releaseDate = releaseDate;
    }

    // public String getCreateTime() {
    // return createTime;
    // }
    //
    // public void setCreateTime(String createTime) {
    // this.createTime = createTime;
    // }

    public long getDuration() {
        return duration;
    }

    public void setDuration(long duration) {
        this.duration = duration;
    }

    public String getStyle() {
        return style;
    }

    public void setStyle(String style) {
        this.style = style;
    }

    public int getPlay() {
        return play;
    }

    public void setPlay(int play) {
        this.play = play;
    }

    public boolean canPlay() {
        return this.play == 1;
    }

    public int getJump() {
        return jump;
    }

    public void setJump(int jump) {
        this.jump = jump;
    }

    public int getPay() {
        return pay;
    }

    public void setPay(int pay) {
        this.pay = pay;
    }

    public int getDownload() {
        return download;
    }

    public boolean canDownload() {
        return download == 1;
    }

    public void setDownload(int download) {
        this.download = download;
    }

    public String getControlAreas() {
        return controlAreas;
    }

    public void setControlAreas(String controlAreas) {
        this.controlAreas = controlAreas;
    }

    public int getDisableType() {
        return disableType;
    }

    public void setDisableType(int disableType) {
        this.disableType = disableType;
    }

    public String getMid() {
        return mid;
    }

    public void setMid(String mid) {
        this.mid = mid;
    }

    public String getBrList() {
        return brList;
    }

    public void setBrList(String brList) {
        this.brList = brList;
    }

    public String getEpisode() {
        return episode != null ? episode : "";
    }

    public void setEpisode(String episode) {
        this.episode = episode;
    }

    public boolean needJump() {
        return jump == 1;
    }

    public boolean needPay() {
        return pay == 1;
    }

    public String getGuest() {
        return guest;
    }

    public void setGuest(String guest) {
        this.guest = guest;
    }

    public String getJumptype() {
        return jumptype;
    }

    public void setJumptype(String jumptype) {
        this.jumptype = jumptype;
    }

    public int getOpenby() {
        return openby;
    }

    public void setOpenby(int openby) {
        this.openby = openby;
    }

    /**
     * 看点对象
     */
    public static class WatchingFocusItem implements LetvBaseBean {
        private static final long serialVersionUID = 1L;

        /**
         * desc: "男妇产科医生讲述看病尴尬瞬间" id: 2 pic: "调用云转码截图超时，获取不到此看点截图，请刷新重试" time:
         * "00:15:57"
         */
        /**
         * 看点描述
         */
        private String desc;
        /**
         * 看点ID
         */
        private int id;
        /**
         * 看点图片地址
         */
        private String picUrl;
        /**
         * 看点时间
         */
        private String timeDot;

        public String getDesc() {
            return desc;
        }

        public void setDesc(String desc) {
            this.desc = desc;
        }

        public int getId() {
            return id;
        }

        public void setId(int id) {
            this.id = id;
        }

        public String getPicUrl() {
            return picUrl;
        }

        public void setPicUrl(String picUrl) {
            this.picUrl = picUrl;
        }

        public String getTimeDot() {
            return timeDot;
        }

        public void setTimeDot(String timeDot) {
            this.timeDot = timeDot;
        }
    }

    private boolean isHaveSurrVideo = false;// just for 周边视频

    public boolean isHaveSurrVideo() {
        return isHaveSurrVideo;
    }

    public void setHaveSurrVideo(boolean isHaveSurrVideo) {
        this.isHaveSurrVideo = isHaveSurrVideo;
    }

    public int getItemType() {
        return itemType;
    }

    public void setItemType(int itemType) {
        this.itemType = itemType;
    }

    public PicAllBean getVideoPicAll() {
        return videoPicAll;
    }

    public void setVideoPicAll(PicAllBean videoPicAll) {
        this.videoPicAll = videoPicAll;
    }

    public long getVid() {
        return vid;
    }

    public int getIsEnd() {
        return isEnd;
    }

    public void setIsEnd(int isEnd) {
        this.isEnd = isEnd;
    }

    public String getPlayTv() {
        return playTv;
    }

    public void setPlayTv(String playTv) {
        this.playTv = playTv;
    }

    public String getVideoTypeName() {
        return videoTypeName;
    }

    public void setVideoTypeName(String videoTypeName) {
        this.videoTypeName = videoTypeName;
    }

    public String getPidsubtitle() {
        return pidsubtitle;
    }

    public void setPidsubtitle(String pidsubtitle) {
        this.pidsubtitle = pidsubtitle;
    }

    private static class PicAllBean implements LetvBaseBean {
        /**
		 * 
		 */
        private static final long serialVersionUID = 1L;
        @JSONField(name = "120*90")
        private String pic120;
        @JSONField(name = "200*150")
        private String pic200;
        @JSONField(name = "320*200")
        private String pic320;

        public String getPic120() {
            return pic120;
        }

        public void setPic120(String pic120) {
            this.pic120 = pic120;
        }

        public String getPic200() {
            return pic200;
        }

        public void setPic200(String pic200) {
            this.pic200 = pic200;
        }

        public String getPic320() {
            return pic320;
        }

        public void setPic320(String pic320) {
            this.pic320 = pic320;
        }
    }
}
